home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / mip_100.zip / MIP.PAS < prev    next >
Pascal/Delphi Source File  |  1991-01-19  |  4KB  |  121 lines

  1. Program Modem_Initialization_Program;
  2.  
  3. Uses
  4.   Crt, Dos, Fossil;
  5.  
  6. Const
  7.   Version = 'v1.00';
  8.   Pgmid = 'MIP '+ Version + ' 19jan91 MWBJR Enterprise 1:273/701.0 (215)641-0270';
  9.  
  10. Var
  11.   Gbx : Byte;
  12.   Gcx : Char;
  13.   WorkString : String;
  14.   InFile : Text;
  15.   DirInfo : SearchRec;
  16.   D : DirStr;
  17.   N : NameStr;
  18.   E : ExtStr;
  19.   StartTime : LongInt;
  20.   Return, InitTries, DialTries, DialWait, ModemTimeOut, NameTimeOut, NameTries : Integer;
  21.   InitString : String[40];
  22.   Month, Day, Year, DayOfWeek, Hour, Minute, Second, Sec100 : Word;
  23.   DayString, HourString, MinuteString, SecondString : String[2];
  24. {=======================================================================}
  25. Function Timer : LongInt;
  26.   Var
  27.     Hour, Minute, Second, Sec100 : Word;
  28.     Minutes, Seconds : LongInt;
  29.   Begin
  30.     GetTime(Hour, Minute, Second, Sec100);
  31.     Minutes := (Hour * 60) + Minute;
  32.     Seconds := (Minutes * 60) + Second;
  33.     Timer := Seconds;
  34.   End;
  35. {========================================================================}
  36. Function UpperString(InString : String) : String;
  37.   Begin
  38.     For Gbx := 1 To Length(InString) Do InString[Gbx] := UpCase(InString[Gbx]);
  39.     UpperString := InString;
  40.   End;
  41. {========================================================================}
  42. Procedure RD;
  43.   Begin
  44.     While (Status And $0100) = $0100 Do
  45.     Begin
  46.       Gcx := (Chr(F_Intr_14($0200) And $7F)); WorkString := WorkString + Gcx;
  47.       Write(Gcx);
  48.     End;
  49.   End;
  50. {========================================================================}
  51. Procedure TD(OutString : String);
  52.   Var
  53.     X : Byte;
  54.   Begin
  55.     For X := 1 To Length(OutString) Do
  56.     Begin
  57.       If OutString[X] = '|' Then OutString[X] := #13;
  58.       P_Intr_14($01,Ord(OutString[X]));
  59.       RD;
  60.     End;
  61.   End;
  62. {========================================================================}
  63. Procedure InitModem;
  64.   Var
  65.     Counter : Byte;
  66.   Begin
  67.     WorkString := ''; Counter := 0;
  68.     Repeat
  69.       Delay(100); TD(InitString); Inc(Counter); StartTime := Timer;
  70.       Repeat
  71.         RD;
  72.       Until (Pos('OK',WorkString) > 0) Or (Pos(#13+'0',WorkString) > 0) Or ((Timer - StartTime) >= 5);
  73.     Until (Pos('OK',WorkString) > 0) Or (Pos(#13+'0',WorkString) > 0) Or (Counter >= InitTries);
  74.     If Pos(#13+'0',WorkString) > 0 Then WriteLn;
  75.   End;
  76. {========================================================================}
  77. Procedure ReadInitFile;
  78.   Begin
  79.     FindFirst('MODEM.INT',Archive,DirInfo);
  80.     D := '';
  81.     If DosError <> 0 Then
  82.     Begin
  83.       Fsplit(ParamStr(0),D,N,E);
  84.       FindFirst(D+'MODEM.INT',Archive,DirInfo);
  85.       If DosError <> 0 Then
  86.       Begin
  87.         WriteLn('MODEM.INT not found!');
  88.         Halt(1);
  89.       End;
  90.     End;
  91.     LowerDTR; Delay(500);
  92.     SetParameters('300');
  93.     InitString := 'AT|'; InitTries := 5; DialTries := 5;
  94.     ModemTimeOut := 120; NameTimeOut := 30; NameTries := 10;
  95.     Assign(InFile,D+'MODEM.INT');
  96.     Reset(InFile);
  97.     RaiseDTR; Delay(500);
  98.     While Not Eof(InFile) Do
  99.     Begin
  100.       ReadLn(InFile,WorkString);
  101.       InitString := WorkString;
  102.       InitModem;
  103.     End;
  104.     Close(InFile);
  105.   End;
  106. {========================================================================}
  107. Begin
  108.   Assign(Input,''); Reset(Input);
  109.   Assign(Output,''); ReWrite(Output);
  110.   WriteLn(Pgmid);
  111.   If SignOn Then
  112.   Begin
  113.     ReadInitFile;
  114.   End
  115.   Else
  116.   Begin
  117.     WriteLn('Fossil not found!');
  118.   End;
  119. End.
  120. {========================================================================}
  121.